package model;

/**
 * Classe que representa o pacote do protocolo TCP.
 */
public class Packet {

	private int sessionId;
	private long firstByte;
	private double sentTime;

	/**
	 * Classe que representa o pacote do protocolo TCP.
	 * @param sessionId A sessão de TxTCP/RxTCP ao qual o pacote pertence.
	 * @param firstByte O primeiro byte do pacote.
	 */
	public Packet(int sessionId, long firstByte) {
		this.sessionId = sessionId;
		this.firstByte = firstByte;
	}
	
	public int getSessionId() {
		return sessionId;
	}
	
	public long getFirstByte() {
		return firstByte;
	}
	
	public double getSentTime() {
		return sentTime;
	}

	public void setSentTime(double sentTime) {
		this.sentTime = sentTime;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (int) (firstByte ^ (firstByte >>> 32));
		result = prime * result + sessionId;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Packet other = (Packet) obj;
		if (firstByte != other.firstByte)
			return false;
		if (sessionId != other.sessionId)
			return false;
		return true;
	}
	
	@Override
	public String toString() {
		return String.valueOf(firstByte);
	}

}
